package com.example.user.customviewdemo.slideletelistview.merge;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;

import com.example.user.customviewdemo.R;

import butterknife.Bind;
import butterknife.ButterKnife;

public class MergeActivity extends AppCompatActivity {

    @Bind(R.id.root)
    LinearLayout root;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_merge);
        ButterKnife.bind(this);

        LayoutInflater inflater = LayoutInflater.from(this);
        //因为我们的merge_add_layout的根布局为merge，所以，我们在使用inflater时，attchtoroot参数必须设置为true，不然会抛异常
        /**
         * View view = inflater.inflate(int resource,ViewGroup root,boolean attchToRoot)
         * 1、如果root为null或者attchToRoot为false，那么我们得到的view则为我们resource对应的根节点view
         * 2、如果root不为null，attchToRoot为false，则得到的view也是resource对应的根节点vie
         * 3、如果root不为null，且attchToRoot为true，那么得到的view就是我们参数传进来的root，
         *    并且我们的resource对应的布局根节点已经加入到了root里，成为root的子节点，
         *    因为在inflate函数中就会调用root.addView(),而不用我们再次用代码添加，如果再次添加，则会抛异常
         * 4、如果我们的resource资源文件的根节点是用的merge标签，那么参数attchToRoot必须为true，root必须不为null，否则会抛异常
         *    因为，merge标签只能作为根标签，但是它又只起到一个连接的作用，如果没有root来接收merge标签下的子节点，
         *    那么按理说在解析出merge的子节点的时候就会有多个view，显然不和常理
         */
        View view = inflater.inflate(R.layout.merge_add_layout,null,true);
        //root.addView(view);
        Log.v("tag","tag:  "+view.getTag());
    }
}
